List based implemented