implemented client side of [US#68] and [US#40]