Lot of changes.. will document later :)