this is the almost completed app