implemented use case 1