abstract apps