Start adding factory implementation.