working, with tests
fucking working!