unlimited array depth and multiple arity for render function