added more constructors, methods