add protocols so it works on filesystem