removing Hardware pojo demendency and migrating to genericparam