add destroy() and size()