final constructor complete