------------ PUBLIC ---------