client-side:
some improvements