Add a static method, so the subclass can decide on his own how to create the instance