refactor/tested manually