Extract as much as possible into core classes for the resources