implemented movement - needs fuzzing