new ideas are pouring in. this is a little cleanup to make further ideas easier to implement