add abstract support class