this doesn't work with our way to include stuff - patch it.
implement weak callbacks