Seperate Context out so it can be used seperately.
currently a context is created with the DMP object but it should be seperate and return the strings instead of printing them. Same goes for the errors they shoudl be triggered by teh calling program.