Refactor self execution