Added console application and abstract factory