merging changes from giventocode