Rename entity -> entities
Split files
Refactoring using factory
Refactoring
Refactoring
Refactoring