Separate lower-level API into separate packages.