Initial Commit!

Adding the basic functionality. This is far from done and needs a ton
of work but for now it'll be fun to play with.