closes #85 #145 #146 #144