random walk implement(not finish yet)