added some internal ones, later to be moved to separate file