some changes and before operator/ rework