constructor improvements