listify required and optional args to make syntax cleaner