this is the input parser