changed eater to abstract class
changed Direction API. add third dimension to field