better namings and code style