lots of changes, a little naughty