business logic extraction example - initial commit