Closes #65 #73 #77