client side, tidying