major refactor of the engine and API; externalized the asks from the engine
new file structure to keep asks out of core file