adding special behaviour for implementations