rearranged functions for top-down reading