moves all of the tempalate implementation into the hpp file
updates readme