Factory pattern

Factory pattern