Very crude first pass at splitting apart the attr/prop logic. Also adding in attrHook...