reduce vary catch method