moved the entity module in to a submodule
refactored the entity module and fixed the affected tests
updated .gitignore to include sublime files