added comments for better description