use Store to handle all output data
redesign the process logic
fix the "after" code
rename some methods