added 'extends' to generic param
added additional sub-element 'data' in 'item' and added version