nearly completed rework; all basic observable and array functions are passing; just need to add in observable fields and observable elements in arrays now