Anything beyond this point is very poorly coded