Added structs as locked objects.
Added constructors for endpoint variables.
Forgot to update variable constructors with struct constructor.
Now, when creating a locked object for a list or a map element, we allow using single threaded elements.
Added function objects back in.