added companion class