add code contracts