structured the code along the concern idea