accept function as keychains (dynamic lists!)