push is messy, setting is the way to go