extend and combine, functional, needs improvements