Bunch of changes it is now working.