Sliced and layed out. Needs code formatting.