collect modes in a package
change argument handover and argument parsing, still not great