Invariant factor decomposition for finitely generated modules over a Principal Ideal domain