general structure + dependencies