worked from bottom up