fuck it, if javascript wants to be all procedural, I'm not going to fight it.