Quick refactor to move much of the logic out of #call