refactored a few things. particularly added factory method for UCIEngine