added 'size' parameter