refactored entry class