* reorganizing code, part1