hook up dataSource and delegate