could be ambiguos
adding some logging
return a empty list when possible
some refactoring and bugfix. closes #15