do not sudo if not necessary
DRY
refactor
garbage