added interface functionality