Work in progress towards abstracting the datatype implementations.

- Got some tests up and running! :) And breaking again.