still sloppy but working