I will be updating and fixing mistakes soon.