made code (much) more efficient as well as more flexible to change