Initial push

This contains a working example.