all feature required by homework are added