refactored to framework