my work from gsoc2012, to be continued in unspecified future