mostly done with client side