made some changes to to header and made template for implementation