Refactoring is continuing. This version doesn't work.