Tried to change some things and mostly failed, will be branching soon.