tested, works well, still have to implement left part, but wont take long