empty function done
size function done
max_size function done