structured the whole class