Many many fixes & changes