slightly more flexible input (someday I'll write getopt when im bored)