Bidirectional might be working now, needs more testing