Add a basic implementation engine, fixes #4