add abstract handlers