refactor expconstr