refactored Enitity