Added implementation for factories