Debugged! Stable (at least i think so. tests will be soon) version