Writing documentation & compartmentalising code