added refactoring and impl patters basics