git add factory_method pattern, implementation in python
commit