added more constructors