Implementation is now created using a separate factory