get rid of the Impl class