Moved interfaces to separate classes