some changes+added 3 use cases