make ! optional in PM