some functions
semi stable