I'm not a huge fan of the side-effecting render operation.  Any way to make it more functional?