This closes #3, closes  #23