split disk backend to its own file