WARNING! Unperformant, unrefactored and unoptimized code! rust version already supports entire functionality of this code, use it.