organised the header and implementation source files