this is harder than i thought... -- private