add error hanling