addressed review comments and brought back smallvec