Added some new features, some bugs fixed, and reduced the requests to the server side