lots of interface changes