Partial implementation and new interface