completed app with pagination