everything works, just making set more general