This does everything 'correctly' for now