made large of changes. started better approach