! and ~ updated