LOTS of changes & improvements