better support for different methods