add explicit requires
add trap for blank input