added more comments to clarify __name__ and repr()