v3, divided the process in to multiple stages