Adding Factory pattern barebones