feat: adds attribute explicit mapping support.

Also moves model serializer code to separate module.

Closes #17