hacks here and there to make it pass on a real project; convert result is
basically useless