Version 2.0

Much better code,