filled in code, and still debugging