test all method and choose the best one