finally basically whole working