Initial publish

This is the working project for the basic functionality. It is really a
prototype for me to build my expertise whilst still adding to the
development.