implements default constructors