optimize input parser