better documentation, mutual recursive fixes