Mixed some metaprogramming to easily add more data types to EntityDescriptor