updateLevel major overhaul. now runs callback