More or less complete API