endpoint functions done