Follow these rules
- Try to reimplement the features creatively, make sure whatever interface is callback based and promises are never anywhere near your solution
- It must never throw an exception unless under very specific documented instances
- Take the guesswork out meaningless names, people shouldn't be able to reason without going to a website for it.
Just make one with great features fully tested.