Personal implementation uses types now.