make client logic consistent

So, we can extent server objects without changing client code, but need make sure server object derived from the same super class.