component adapter :)