step21(first working version)