more organization, no func change