changed structure, minor changes