massive update. everything included should be at working functionality