first commit, client side stuff is mostly done.