an academic exercise I'm using to learn javascript.