renamed interfaces to not have "I" prefix, and renamed impls to have Impl suffix