Please use comments to describe what this class should achieve