And one private method that does same work depending on the type.