intermediate - defined input data, cleanup, added tests