As others have said, there are a fair few ways to approach this, so I'll just summarise them: