Added CommandFactory Interface
Merge branch 'task3' into task4