better method handling