First commit: adding main engine and sample procedural program