removed -0 in compare, cleaned up Direction typedef