Lots of changes

Client-side is 10000x better now :)