diff --git a/lib/index.js b/lib/index.js
index <HASH>..<HASH> 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -95,11 +95,10 @@ class Sade {
 		}
 
 		let opts = mri(arr.slice(3), cmd.config);
-		let args = opts._;
-		// TODO: parse arguments (`_`)
-		// TODO: push to new `arguments` arr per known key
-		// TODO: append remaining `opts:options` to arr
-		return cmd.handler(opts);
+		let reqs = cmd.usage.split(/\s+/).filter(x => x.charAt(0)==='<');
+		let args = opts._.splice(0, reqs.length);
+		args.push(opts); // flags & co are last
+		return cmd.handler.apply(null, args);
 	}
 
 	help(str) {
parse cmd usage for named args; pass thru handler;

- only counts required params (‘<foobar>’)
- any optionals will be available on `opts._` key