overhaul with inputparser