runtime validation