bash required because we are using bash specific variable substitutions