Begin implementing Engine; not yet complete.