core: refactor to eliminate duplicate type sig