proper argument handling