change main project type to library
introduce contracts of object model