Reduce redundancy, implement generic call method