Factory methods should return pointer to struct, not the interface implemented.