added source and copysplitter implementation, with a working test