ololo
some changes, not finished..