Bring more flexibility to the interface