final complete app