A lot of changes and a nice speed-up