refactoring type sigs