Lots of interface changes

tons of interface changes