add resource creation options
implement Variable