changed structure a bit, introduces more subsections