mutual recusion fix