fixed a bunch of stuff and implemented the lwrp.  All tests are passing