update code and add shiny app