adjusted some return types