added sane argument handling