add msubstr
add input validation