Refactor module
Update readme
Add some documentation
Document layer methods
Fix require paths