change ensure in make and modified is_valid at return