this is one of the cheap solutions i mentioned. basically, i wasn't able to have the `test` function calling his members in the body, thus there is the `test` object and the returned function, as two different things. a consequence is that the returned function has not methods like `.complete` that can be redefined. i know that this is probably a problem just for a javascript beginner, but ... as i said i wanted to finalise