Refactor __call__ to smaller methods