use private variables and new up instances on them once in constructor