revise some location methods