why do we need 2 parameters for this? would it not be enough to say $imagine may be null? the way this signature looks it can never be instantiated without imagine, thus keeping the hard dependency on imagine...