client side basically finish, still need login though