added argument processing