update() is now optional when creating a directive