more flexible input format