Updated to use trailing return types.