lots of changes, like new classes