make maos easier to extend