added collections
added inner classess