improve(engine): support custom process application class

Affects #28