Restructured and improved (incomplete)