refactor: use express