reworked and added