Disclaimer: The following is for educational understanding of portable software architecture. Verify your local laws.