support for (almost) full API