{
  description = "A very basic flake";

  inputs = {
    # import nixos packages
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    #nixpkgs.url = "github:NixOS/nixpkgs/gnome";
    # import homemanager
    home-manager.url = "github:nix-community/home-manager";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";

    #nixos-hardware.url = "github:NixOS/nixos-hardware/master";
    nixos-hardware.url = "github:kjhoerr/nixos-hardware/fw13-7040";
  };

  outputs = { self, nixpkgs, home-manager, nixos-hardware }: 
  let
    system="x86_64-linux";
    pkgs = import nixpkgs {
      inherit system;
      config.allowUnfree = true;
    };
    lib = nixpkgs.lib;
  in {
    nixosConfigurations = {
      laptop = lib.nixosSystem {
        inherit system;
        modules = [ 
          nixos-hardware.nixosModules.framework-13-7040-amd

          ./common/configuration.nix 
          ./laptop/hardware-configuration.nix

          home-manager.nixosModules.home-manager {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.users.lukas = {
              imports = [ ./common/home.nix ];
            };
            home-manager.users.root = {
              imports = [ ./common/home-root.nix ];
            };
          }
        ];
      };
    };
  };
}
