comments + improved general structure