basic interface complete