added random location generation