client side almost done
client side almost done