splitted class
refactored algorithm ... nice ... but not nice yet ..