Quite a bit a refactoring...