Fully cleaned up; new version :D