refactor to name things more clear