Initial commit
Initital implementation
(pending generalization)