restructure interfaces
tidy interfaces