just added comments so you can actually read my code