incompatible types: unexpected return value.