Basic version

Based on: https://github.com/busterbenson/public
Still have to edit and rewise, fill out the parts that I don't quite
know yet.