support optional params to functions

nit - we should include spaces when joining (`theme, scale`)