added casting ops and casting through constructors