start implementing insertion