Remodeled to match requirements