refactor & location