{ device, fsType, encrypted, impermanence, ... }:
let
  fsModule = if impermanence then ./${fsType}/persist.nix else ./${fsType}/standard.nix;
  basic = import ./basic.nix { inherit device; fsModule = fsModule; };
  luks = import ./luks.nix { inherit device; fsModule = fsModule; };
in
if fsType == "btrfs" && encrypted then luks
else basic