prajna's branch plus my recent changes