Initial checkin. Well, the basics work. Still needs lots and lots of polish