How can an organization customize and extend the functionality of a platform?