updated / commented