changed fallback callback to optional, changed handle and more to be protected