Initial work on the new implementation