filling in some gaps in the interface implementation