singleton hooks