added ! handling

just copied from Zhen. Thanks Zhen!