First working version
Added convenient argument interface