Added more fields that are part of requirements, as well as get and set
methods for them as well as some more constructors.