implement unshift and tests