You can't overload on return type. The parameters need to be different, or the functions are going to conflict.
Ah, that explains it, thanks. I find ref properties useful for making a member variable behave like it is public, but allowing the struct to be aware when it's being accessed, at least that's what I use it for.
