cannot assign to self inside instance methods. TODO: understand why (closures? old one pointing to a new address?)