Seems like the obvious implementation