fixed async handling, now we know when we are finished with everything
moved the finsished callback to each method call instead of the instance (clean)
new strucuture to keep the flow understadable, part 1