bootcamp low level design & refactoring session exercises