huge update, check todo and bugs
small changes