Add generic adapter and fix many class