add a bit refactoring