Add architecture for code sharing
About to finish