closes #47, #50, #53, #55, #58, #60