guide to a functional function