Fix, everything is working perfectly now.
final refactor and appropriate string names
transfering common stuff to a DLL