second attempt

variables explanation