implement real type