User base type when possible
Extract Interfaces  and base types to new  assembly