improve errorhandling