some small changes, smth can be mistaken