first convention refactor