- using KVO instead of setters