further improvements (still  WIP!)