used to learn how to make use of design patterns and git itself