split box class out of solution.py