good luck diciphering this code :( more time = cleaner code