better isbehind
isforward
TODO