a bunch of interface improvements and fixes