use more type to make refactorings easier