not so random
basic movement functionality