extract entity DSL into its own file