avoid cyclig dependency