defaul implementation