work in progress, not compilable