refactor 1
finished