#2 optimize variables