provide default empty impl