Some refactoring in call()