completed entire lab + major refactor