Add functionality and housekeep internal state