some duplication removed