Removed the polymorphic casts and implicit_cast