encapsulate models