Factory must have valid? method