rebased (regenerated) branch from master