A more complete sample app