added ability to skip whitespace