hard -- soft