broke down codes further into classes