takes any method