code seperation