added impl details