First working implementation. Including composer support and basic unit testing.