more abstract slots work