Partially implemented factory pattern