Add ! implementation