moved things around, rolled my own minimal FRP