bunch of rewrites because of actually running the code