many messy changes