almost done, just a few small problems here and there to work out. but for the most part it works