some casting
some ops
some tests