Added tests to design patterns, added visitor