added a dsl implemented using endomorphism