improved:inspired by archlinux