diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..098c2f95
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,36 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+**Version**
+List the versions of all `ethers-rs` crates you are using. The easiest way to get
+this information is using `cargo-tree`.
+
+`cargo install cargo-tree`
+(see install here: https://github.com/sfackler/cargo-tree)
+
+Then:
+
+`cargo tree | grep ethers`
+
+**Platform**
+The output of `uname -a` (UNIX), or version and 32 or 64-bit (Windows)
+
+**Description**
+Enter your issue details here.
+One way to structure the description:
+
+[short summary of the bug]
+
+I tried this code:
+
+[code sample that causes the bug]
+
+I expected to see this happen: [explanation]
+
+Instead, this happened: [explanation]
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000..982a4dc0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: feature-request
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
new file mode 100644
index 00000000..445ecc99
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.md
@@ -0,0 +1,10 @@
+---
+name: Question
+about: Please use the Telegram group for questions
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+Please post your question as a discussion in Telegram: https://t.me/ethers_rs
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 00000000..f69e4c9b
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,26 @@
+
+
+## Motivation
+
+
+
+## Solution
+
+
diff --git a/README.md b/README.md
index c71bb97e..facf414f 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,55 @@
-# ethers.rs
+#
ethers.rs
-Complete Ethereum wallet implementation and utilities in Rust (with WASM and FFI support).
+**Complete Ethereum wallet implementation and utilities in Rust**
+
+[![CircleCI](https://circleci.com/gh/circleci/circleci-docs.svg?style=svg)](https://circleci.com/gh/circleci/circleci-docs)
+
+## Documentation
+
+Extensive documentation and examples are available [here](docs.rs/ethers).
+
+Alternatively, you may clone the repository and run `cd ethers/ && cargo doc --open`
+
+## Add ethers-rs to your repository
+
+```toml
+[dependencies]
+
+ethers = { git = "github.com/gakonst/ethers-rs" }
+```
+
+
## Features
-- [x] User friendly transaction APIs
-- [x] Type-safe EIP-155 transactions
+- [x] Ethereum JSON-RPC Client
+- [x] Interacting and deploying smart contracts
+- [x] Type safe smart contract bindings code generation
- [x] Querying past events
-- [ ] Event Monitoring
-- [ ] Deploy and interact with smart contracts
-- [ ] Type safe smart contract bindings
-- [ ] Hardware wallet support
-- [ ] CLI for creating transactions, interacting with contracts, generating bindings from ABIs (abigen equivalent), ...
-- [ ] ...
+- [x] Event monitoring as `Stream`s
+- [x] ENS as a first class citizen
+- [ ] Websockets / `eth_subscribe`
+- [ ] Hardware Wallet Support
+- [ ] WASM Bindings
+- [ ] FFI Bindings
+- [ ] CLI for common operations
-## Directory Structure
+## Getting Help
-## Acknowledgements
+First, see if the answer to your question can be found in the [API documentation](docs.rs/ethers). If the answer
+is not there, try opening an [issue](https://github.com/gakonst/ethers-rs/issues/new) with the question.
-This library would not have been possibly without the great work of the creators of [`rust-web3`]() and [`ethcontract-rs`]()
+## Contributing
-A lot of the code was inspired and adapted from them, to a unified and opinionated interface.
-That said, Rust-web3 is ~9k LoC (tests included) and ethcontract-rs is 11k lines,
-so in total about 20k lines of code with tests. This library is xxx LoC.
+Thanks for your help improving the project! We are so happy to have you! We have
+[a contributing guide](https://github.com/gakonst/ethers-rs/blob/master/CONTRIBUTING.md) to
+help you get involved in the ethers-rs project.
+
+## Related Projects
+
+This library would not have been possibly without the great work done in:
+- [`rust-web3`](https://github.com/tomusdrw/rust-web3/)
+- [`ethcontract-rs`](https://github.com/gnosis/ethcontract-rs/)
+
+A lot of the code was inspired and adapted from them, to a unified and opinionated interface,
+built with async/await and std futures from the ground up.