finalized most interfaces.