Correctly promote, refactor