restructured + some additions