# Write a BigchaindB Enhancement Proposal (BEP) This is the main way to get new BigchainDB code into the project. There are two general paths: 1. Create a BEP. Then create a pull request to implement it. And so on. 1. Create a new pull request straight away. This is less likely to work. It is only going to be permitted if the problem being solved is clear, obvious, small and well-defined in the pull request. If it's not, then a BEP was needed and you need to go back and write a BEP first. ## Tips - Review [1/C4](https://github.com/bigchaindb/BEPs/tree/master/1), the process we use to accept any new code or PR of any kind, including one that adds a BEP to `bigchaindb/BEPs`. - Review [2/COSS](https://github.com/bigchaindb/BEPs/tree/master/2). Maybe print it for reference. It outlines what can go in a BEP. - Don't spend weeks on your BEP. Version 1 should take a few hours to write up, maximum. You can add to it in the future. The process is iterative. If you need more than a few hours, then consider writing multiple BEPs. - Do not start writing code before you think about it. You should always write a BEP first. Once you do that, you _can_ start implementing it. To do that, make a pull request and say it implements your BEP. - If you're thinking of writing a new _issue_, think again. See the page [Issue Rules](issue-rules.html).