make set and define use typed slot