Spreading logic to separate classes