commented performshop code for better understanding