new back logic