make use of push_pos, pop_pos and drop_top