add guard, private classes