basic interface finished