split business logic
split business logic