1. A computer implemented method of refactoring a source code that includes a plurality of references to sensitive data into at least two separate source codes, comprising: receiving a source code comprising a plurality of references to sensitive data; identifying a plurality of code blocks comprising said plurality of references, one or more of said plurality of code blocks is identified in said source code by assigning a weighting factor to words in a source code according to a list of sensitive data terms and by extracting words from compound phrases in source code according to at least one rule or coding standard of a member of a group consisting of: a camel case, an underscore separation, a compound name, and a programming language naming convention; using an information retrieval algorithm to identify synonyms to words or phrases in said source code and assigning said weighting factor to said synonyms according to said list of sensitive data; refactoring said source code into an enterprise source code having a plurality of functions containing said plurality of code blocks and a cloud source code that is semantically equivalent when executed to said source code when executed; and replacing within said cloud source code at least one of said plurality of code blocks with a call to a function within said enterprise source code, said function containing at least one code block semantically identical to said at least one replaced code block.