Split in multiple modules
Add Hibernate criteria support