generate location