finished new interface