added routing
added loading spinner