improved tokeinising that preserves punctuation as separate tokens