Feature/25

Merging additional work from #25; still a work-in-progress.