using nathan component class methodology