first attempt

does the basic stuff pretty much