finished almost all stuff except mapcleft