I'd really like to keep this API as simple as possible and avoid doing any magic. Especially since there are options to the constructors of these objects.