my version of the program, so far