a bunch of new features; to be documented