Whats the difference, when do we choose one over the other, why is abstraction important