huge interface update