closes #78, closes #112