Good job @arielkennan. With a little clean up its ready. Closes #154