This is all Plamen's work, I just contributed some ideas here and there