begin function split