Updates. Further refactoring.