minor changes, still super hacked up