source code structure set up