specify return types explicitly