chopped up functionality into amd modules