Moved interfaces to contracts