Conversation

To refactor code, first I introduce purely mechanical changes (decomposition, renaming, etc.), and after that, the whole picture gets clearer and I can move up to a higher level of thinking -- the act of coinciding the code implementation with the language of a problem domain.