add encapsolation