use namespace

support namespaces and variable arguments.