Fix and simplify extend and introduce Collection

There are still a lot of problems but this will do for now...