restructuring for easy use