first iteration + some fixes in terminology