EX*: more customizable constructor
EX*: more customizable constructor