Adding tests and test fixtures.
Adding implementation.
Adding Travis CI