Added Factory design part 2
Fixed naming