public void start(String... args) throws Throwable {
LauncherArguments arguments;
try {
final ArgumentHandler argumentHandler = new ArgumentHandler(args);
arguments = argumentHandler.getInstance(LauncherArguments.class);
argumentHandler.processArguments(new ArgumentProcessor() {
@Override
public void process(List<String> remaining) throws InvalidArgumentsException {
if (remaining.size() > 0) {
throw new InvalidArgumentsException("The following arguments could not be understood: " + remaining);