add basic app framework