changed back to use 1 constructor