Updates... not working at the moment.
A brave refactoring of code.