Refactored entity DSL