refactor: promise chaining; interface organization