finished required code