basic functionality working... lots of bugs still