good OO structure for entities