added static for outer member functions