this needs to be declared protected