API cleanups

All of these need to be discussed before merging, as they will break the already released libs (but I prefer to do it now rather than in 6 months).