allow the program to be called from elsewhere