with flags (wip)