constructors ensuring non-null arguments