completly working
finished tests