trans from logic_error -> invalid_argument
add assert impl