basic functionality is completed