completed power component now hash hascode quals tostring and implements component