don't use `delete` keyword;
attach events only if possible