separate slots from main functions