Make it all functional, kind of