directions reworked using enums.