Added program related classes, started routine generation logic