added splice and tests