copy whole function signature to avoid partial matching