changed structure, more tests