another layer of abstraction on top of YEngine, just for programmer convenience