models and types update to support getitem and setitem