library interfaces