Make *Impl classes private if possible, close #22.