imperative approach