broken stuff, somewhat fixed