Further update and separate data with functions