add push, pop, update tests