new functions added, but split funcs need improv