add a test and fix some shit, but still some weird shit going on