refactoring and a new Splicer
more tests - need debugging