proper 函數