logic for stuff