Initial implementation: refactoring, added shutdowm, resolved locks