return instead of throw