refactor + bubu