base framework for easy work