removed `weak` as its not compiling