implemented correct directional passing