Feature/versioning

Closes #112 and does significant amount of the work towards #105.