Refactored w/ puzzle class