added interface enforcment methods