added new methods splitAtPosition and shallowCopy
refactored operations with new methods