memory usage improved a little (50MB)