Mega refactor/Use generators