Initial commit
Contains working implementation plus console app for seeing it in action