add implement generic Stack