moved additional functions to separate files