Client Programming Guidelines