Newest version, including tests