can work. 6.2 seconds for 500MB tophat data. some bugs fixed. further optimized