changed some return types.