add setter for injecting dependencies.
add getter for injected objects, and some useful methods.
should return the primary key when inserting a datum.
introduce EnumArrayInterface.