updated with some changes