various enhancement + some fix, new version