pending refactor Stack to singleton