major interface update :P