finished constructor