starting addind abstraction layer (program.h)