better comments above and inside the functions