Work in progress towards abstracting the datatype implementations.

- Got some tests up and running! :)