implements common interfaces