handles complex splices