Version2 working

Slightly awkard to have an X that can create an X.  Usually these are done via the Factory pattern through a static method, ie:
`RequestFactory.createRequest(Class<? extends FCRequest> reqClazz)`