restricted spec
shallow constructor added