Implemented a basic synchronous engine (fixes #28)