further functionalize and add formatting
GetOpt::Long handling