Recoding the whole Project

Because of several new ideas I recode the whole thing.