added comments for the construct function