Refactored into bigger project.