basic interface is done