getting rid of the @Component approach to consolidate the API; moving the component metadata resolver to reduce iterations over annotations and consolidate the metadata resolution