Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Хотим, но я бы это не в рамках этого  PR делал.