added necessary constructors