todos deliberately left in for your reference, though I think they may all be satisfied by my code. In future, do you want these cleaned out before committing?