improve execute() methods
implement additional useful constructors
minor changes