cleanup, better building, use a circular buffer type ll which now that i think about it is probably in need of some rewriting to unfuck it