I like this "Service Object" pattern here.