now works with multiple opt arguments