explore function
merged Engine.cpp/h