separate data from functions