throw runtime error instead of string