adg: refactor for easier maintenance