add get length function