bug fix: command existence check