fully functioning, working on output