Seems like records work! Added some tests.