some refactor due to grammar errors (holy shit)