made A LOT OF fixes - architecture change