start speccing out typedcollection
typedcollection passes the first couple specs
hash behavior
implement hash behavior
spec out more typedcollection and counter behavior
add parent to typedcollection