First of Mike's comments

moved Note definition to implementation and added private push method to
reduce duplication