LOTS of cleaup (i blew away 22 TODOs!) and a little refactoring, particularly aroun. sadly there is something very wrong with warp() :(