lua new() now handles optional arguments