Added get and set functions and more constructors