Split Direction concept into multiple classes to accomodate Perspective