remove need for forward decl
provide a prelim cached property implementation
Actually create property