raise and drop between types