add some comment
refactor to able to run preprocessor
add downsampler