refactor methods and naming