ugly delimiter tracking :D