partial implementation of rpoplpush + tests