random shit, i gave up on bidirectional bullshit