work work on refactor