possibly going to go with manual comonad instance