greatly improved performance after profiling with JProfiler