completed pseudocode, code, refactoring & reflection