Update, refactoring everything