three working functions: put create expand