Refactor to not use internal calls