functorality write up