changed the interface slightly