Refs #20 Replaced the generic methods by a factory