type safe slots