functioning program, README included