method call redesign