code more encapsulated