no need to set state to finish if an error is detected / small fix to function sig call
refactor args to be refs rather than pointers
tests for typematching float/integer/string