app complete. almost