add abstract app