bit refactored and covered with tests