making this thing an anonymous function so I don't pollute global namespace terribly