there's a memory leak here - why isn't this just being created scoped locally to this method?