refactor common behavior
only get first char when strict in effect
add verify option

closes #10
closes #16