add public fn