lesson 1 implementation