mucho refatoring
unit test fixes