promising results
code works a bit more