Invalid Cast Exceptions with Implicit Operators