added some and without methods, updated extend to take multiple sources