PUBLIC_INTERFACE doesnt need to be an actual defined interface