bottom-up analysis