the backbone of the program is working now