changed system structure, splitted into