讓selector能在初始化時由caller指定，而非寫死