be more declarative