can handle any input