implemented insert + tests