code refactoring
more refactoring
got rid of timeout
a bit more clever
more major architecture extension