Closes #24 #20