Adding programatic interface