on by default
error checking