sever working
some more testing needed