refactored making direction an enum and directionstep a direction with a distance