Constructor

Closes #203 
Closes #205 
Closes #238 

Provides framework for #171 (separate PR)