removed variadics and arg unpacking