Add navigation view, refactor some code, fix deploy script to just push the dir recursively.