closes #3 (implemented equals() and hashcode(), closes #5 (removed static keyword in DTOFactory.getDTO), added collections, changed services to handle models instead of DTOs