redo args checking