top vs bottom logic