added more precise process